A reproduction unit in a general recording system uses a modulation code to reduce distortion of a reproduced signal caused by interference between adjacent symbols and to achieve appropriate timing recovery.
The modulation code can be represented by (d, k), which is referred to as a Run Length Limit (RLL) code. Here, “d” indicates the minimum number of 0s that can be present between 1s of the modulation code and is used as a constraint to reduce distortion of a signal caused by interference between adjacent symbols. “k” indicates the maximum number of 0s that can be present between 1s and is used as a constraint to achieve timing recovery.
Methods for applying the k constraint to a modulation code when the modulation code is designed include a bit flip method in which a channel sequence output from a modulation code encoder is monitored and, when a sequence violating the k constraint is detected at a position of the sequence, data of “0” is changed to “1” at the position to apply the k constraint.
That is, the bit flip method adds an error to the channel sequence to apply the k constraint to the channel sequence. In this method, an error is added to the channel sequence before it is recorded on a recording medium. Therefore, the sequence to be recorded on the recording medium contains an error.
Thus, the bit flip method has problems in that it is difficult to reconstruct original data during demodulation if bit flip frequently occurs and there are limits to improving recording density even if the original data can be reconstructed. Especially, for modulation codes for recording systems, these problems are more serious since an error in one bit causes errors in a number of other bits during decoding due to the design characteristics of the modulation codes for recording systems.